javascript根据屏幕上的div可见性删除css

标签 javascript jquery html css

<分区>

我是 Javascript 的新手,我在一个网站上工作,该网站有一个全宽 slider 和 slider 下方的一组按钮,根据屏幕尺寸,这些按钮部分可见。我在按钮上设置了一个 transform:translate css,所以当你将鼠标悬停在每个按钮的可见部分时,它会向上变换以显示按钮的其余部分。但这只有在屏幕上看不到完整按钮时才有必要。向下滚动页面并显示整个 buttons_container div 后,需要禁用转换 css。

当您向下滚动时,一旦按钮进入全 View ,是否有办法禁用此转换 css?我们可以根据它在移动/平板设备上的屏幕/窗口大小来确定它吗?

这是我目前所拥有的:

<div id="slider"></div>
<div id="button_container">
<div class="buttons">
<a href="#"><p>Button Title</p></a>
<div class="button_img">
<a href="#"><img src="image.jpg" /></a>
</div>
</div>
<div class="buttons">
<a href="#"><p>Button Title</p></a>
<div class="button_img">
<a href="#"><img src="image.jpg" /></a>
</div>
</div>
<div class="buttons">
<a href="#"><p>Button Title</p></a>
<div class="button_img">
<a href="#"><img src="image.jpg" /></a>
</div>
</div> 
</div>

这是CSS

.hp_buttons { 
float:left; 
width:33%; 
transform:translate(0,0); 
-webkit-transition: all.2s ease-in-out; 
-moz-transition: all.2s ease-in-out; 
-o-transition: all .2s ease-in-out; 
-ms-transition: all .2s ease-in-out; 
transition: all .2s ease-in-out; 
}
.hp_buttons:hover { 
transform:translate(0,-80%); 
}

提前致谢。

最佳答案

您可以处理滚动事件并检查元素是否可见,然后从元素中添加或删除类,链接如下:

$(window).scroll(function(){
   if ($('#elementId').visible()) {
     $('#elementId').removeClass('hp_buttons');
   } else {
     $('#elementId').addClass('hp_buttons');
   }
})

要验证元素是否可见,您可以使用以下代码: https://github.com/customd/jquery-visible

希望对您有所帮助。

关于javascript根据屏幕上的div可见性删除css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900738/

相关文章:

javascript - 星级评定系统仅更新列表中的第一项

javascript - 具有向下钻取的 Highcharts 列导致主图表中的数据标签模糊,向下钻取的列除外

javascript - 将两个 javascript 对象附加在一起

html - 使html中的段落包含文件中的文本

c# - 使用 ASP TabPanel Onclick

javascript - 我的 Node.js 收到 Route.post() got a object Undefined 错误

jQuery 选择特定父元素内的所有元素

html - IE8 固定和绝对位置问题

在类中创建的 Javascript 鼠标事件监听器

javascript - CTRL 键和箭头键允许输入