在同一类 JQUERY 的不同时间触发事件
Trigger an event on different time of the same class JQUERY
请在标题中建议编辑,因为我无法理解我应该给它起什么名字。
这是 HTML:
<div class='portfolio'>
<h2 class='mainheading'>
Recent From
<span class='welcome-heading'>Portfolio</span>
</h2>
<hr>
<div class='portfolio-row'>
<div class='flip-container portfolio-for-transition jstransitionportfolio1' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-1'></div>
<div class='back back-1'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio2' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-2'></div>
<div class='back back-2'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio3' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-3'></div>
<div class='back back-3'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio4' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-4'></div>
<div class='back back-4'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio5' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-5'></div>
<div class='back back-5'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio6' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-6'></div>
<div class='back back-6'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio7' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-7'></div>
<div class='back back-7'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio8' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-8'></div>
<div class='back back-8'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio9' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-9'></div>
<div class='back back-9'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio10' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-10'></div>
<div class='back back-10'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio11' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-11'></div>
<div class='back back-11'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio12' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-12'></div>
<div class='back back-12'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio13' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-13'></div>
<div class='back back-13'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio14' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-14'></div>
<div class='back back-14'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio15' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-15'></div>
<div class='back back-15'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
<div class='flip-container portfolio-for-transition jstransitionportfolio16' ontouchstart="this.classList.toggle('hover');">
<div class='flipper'>
<div class='front front-16'></div>
<div class='back back-16'>
<p>Some Portfolio Website</p>
<a href=''>Visit</a>
</div>
</div>
</div>
</div>
</div>
这是JQuery:
$(window).scroll(function(){
var xScroll = $(this).scrollTop();
if(xScroll > $('.our-services-item1').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.our-services-item1').addClass('is-showing-our-services');
},150);
};
var yScroll = $(this).scrollTop();
if(yScroll > $('.our-services-item2').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.our-services-item2').addClass('is-showing-our-services');
},150);
};
var aScroll = $(this).scrollTop();
if(aScroll > $('.our-services-item3').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.our-services-item3').addClass('is-showing-our-services');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.our-services-item4').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.our-services-item4').addClass('is-showing-our-services');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio1').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio1').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio2').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio2').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio3').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio3').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio4').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio4').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio5').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio5').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio6').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio6').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio7').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio7').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio8').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio8').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio9').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio9').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio10').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio10').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio11').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio11').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio12').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio12').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio13').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio13').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio14').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio14').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio15').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio15').addClass('is-showing-jstransitionportfolio');
},150);
};
var zScroll = $(this).scrollTop();
if(zScroll > $('.jstransitionportfolio16').offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$('.jstransitionportfolio16').addClass('is-showing-jstransitionportfolio');
},150);
};
如您所见,这些东西属于同一类,但我必须以不同的方式命名它们,这样触发器就不会为同一类的每个元素触发,所以我将它们命名为 jstransitionportfolio[1-16]。但它大大增加了我的脚本时间。我想将它们组合在单个函数中,这样它就可以减少我的脚本时间,而且我不会有很多类,我的代码会更干净、更好。请帮忙!
你的代码可以简化:
$(window).scroll(function() {
var xScroll = $(this).scrollTop();
$(".some-class").each(function() {
var that = this;
if(xScroll > $(that).offset().top - ($(window).height() / 1.2)) {
setTimeout(function(){
$(that).addClass('some-other-class');
},150);
}
});
});
您只需要将.some-class
和some-other-class
更改为您选择的某个类名。
旁注:在向onScroll
监听器添加内容时请小心,因为它会减慢滚动速度来降低用户体验。
在使用此功能之前,请从我们的服务项和 jstransitionportfolio 类中删除数字。您可以在此处查看演示
var setHeight=$(window).height() / 1.2;
var ourServices=$('.our-services-item');
var tranPortfolio=$('.jstransitionportfolio');
$(window).on('scroll',function(){
var xScroll = $(this).scrollTop();
ourServices.each(function(){
var el=$(this);
if(xScroll>(el.offset().top-setHeight))
setTimeout(function(){el.addClass('is-showing-our-services')},150);
});
tranPortfolio.each(function(){
var el=$(this);
if(xScroll>(el.offset().top-setHeight))
setTimeout(function(){el.addClass('is-showing-jstransitionportfolio')},150);
});
});
相关文章:
- 存在每个时间元素的javascript事件
- Javascript:如何在onChange事件期间更改日期时间值
- 事件时间戳谷歌分析
- 时间和事件嵌入声云
- 节点.js在一定时间后发出事件
- 在 Node.Js 脚本中使用 Javascript 计时器在特定时间触发事件
- HTML 5 音频 :是否有在更改缓冲持续时间时触发的事件
- 时间间隔的 JavaScript 事件侦听器
- 完整的日历错误时间在点击事件谷歌日历
- AngularJS:跟踪在Web应用程序中花费的时间,然后在特定时间触发事件
- 用于查找基于时间的事件的最佳Javascript算法
- 在一小段时间的按键事件后,在angular js中进行get调用
- Vanilla Js:在一个事件中开始一段时间的循环,然后用第二个事件打破它?('mouseover'启
- 作为自动化测试的一部分,监控特定的js事件以及执行它们所需的时间
- 如何从服务器倒计时并在一段时间后触发事件
- 将事件附加到启动日期时间选取器
- 在同一类 JQUERY 的不同时间触发事件
- HTML 5 画布按键按下时间事件
- Javascript/jQuery时间事件侦听器
- Jquery时间事件监听器停止/启动