当Elementor编辑窗口打开时,如何隐藏此自定义滑块?

时间:2021-06-03 作者:MBWD

全面健康。care是一个WordPress网站,使用了2017和Elementor,首页上有一个滑动条,使用智能滑动条3构建。使用一点javascript将其设置为在滚动时消失,这很好。

我以这种方式在一个我自己没有构建的网站上构建了滑块,因为客户机使用的是217,而该特定主题的顶部元素不适合用页面生成器轻松添加其他元素。我回显了中Smart Slider 3的短代码header.php 一切似乎都很顺利。

问题是,在Elementor中编辑页面时,隐藏滚动条的JS不起作用,它会阻止您激活编辑器中的任何元素。对我来说,在编辑时使用CSS隐藏它是一件很简单的事情,但这不是一个真正的解决方案,更重要的是,拥有这个网站的人不知道如何做到这一点。

当Elementor处于活动状态时,我需要这个滑块完全消失,但我不知道如何实现它。

div类是.n2-ss-slider.

到目前为止,我已经尝试了以下JS(在header.php):

if (window.location.href.indexOf("&action=elementor") != -1) {$(".n2-ss-slider").hide();

而且

if (/&action=elementor/.test(window.location.href)){document.getElementByClassName(\'n2-ss-slider\').display = \'none\';

我的剧目快结束了。有人能用CSS、JS甚至PHP提供其他建议吗?

1 个回复
SO网友:MBWD

我在Smart Slider的支持人员的帮助下解决了这个问题。他们指出,不会消失的div使用的是绝对定位,并建议我向其添加一个id,以便使用CSS隐藏它。我通过在标题中回显id名称来实现这一点。php在我重复短代码的同一行中:

<?php 
        if (is_front_page() ) 
            echo \'<div id="front-page-slider"\' . do_shortcode(\'[smartslider3 slider="3"]\' . \'</div\');

        else 
        { }
        # do nothing ?>
然后我有了一个新的id“front page slider”。然后,我可以在用于隐藏元素的JS中调用该id:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script>
        $(window).scroll(function() {
            var y = $(this).scrollTop();
            if(y > 250) {
                // $(\'.n2-ss-slider\').slideUp();
                $(\'#front-page-slider\').slideUp();
            }
            if (y < 250) {
                // $(\'.n2-ss-slider\').slideDown();
                $(\'#front-page-slider\').slideDown();
            } 
            if(y+ $(this).height() == $(document).height()) {
                $(\'#front-page-slider\').fadeOut();
            }
        });
        </script>
我的问题解决了。