全面健康。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提供其他建议吗?
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>
我的问题解决了。