gpt4 book ai didi

jquery - 当内容滚动到 View 中时激活 CSS3 关键帧动画

转载 作者:太空狗 更新时间:2023-10-29 16:36:48 28 4
gpt4 key购买 nike

我一直在尝试弄清楚如何在它滚动到 View 中时出现动画,但几乎没有运气。我找到了一个 JQuery 插件“Waypoints”,但我缺乏使用它的技能。我正在尝试使用在滚动到 View 中时动画的 CSS3 关键帧。我取得了突破并且接近我想要完成的目标,但它并不完全是我想要的。我有一个名为“bounceinright”的类,它使元素在屏幕右侧弹跳。这是它的 CSS:

@-webkit-keyframes bounceinright {
0% {
opacity: 0;
-webkit-transform: translateX(2000px);
}

60% {
opacity: 1;
-webkit-transform: translateX(-30px);
}

80% {
-webkit-transform: translateX(10px);
}

100% {
-webkit-transform: translateX(0);
}
}

@-moz-keyframes bounceinright {
0% {
opacity: 0;
-moz-transform: translateX(2000px);
}

60% {
opacity: 1;
-moz-transform: translateX(-30px);
}

80% {
-moz-transform: translateX(10px);
}

100% {
-moz-transform: translateX(0);
}
}

@-o-keyframes bounceinright {
-o-transform: translateX(2000px);
}

60% {
opacity: 1;
-o-transform: translateX(-30px);
}

80% {
-o-transform: translateX(10px);
}

100% {
-o-transform: translateX(0);
}
}

@keyframes bounceinright {
0% {
opacity: 0;
transform: translateX(2000px);
}

60% {
opacity: 1;
transform: translateX(-30px);
}

80% {
transform: translateX(10px);
}

100% {
transform: translateX(0);
}
}

.bounceinright {
display: none;
}

.bounceinright.start {
-webkit-animation: bounceinright 1s ease-out forwards;
-moz-animation: bounceinright 1s ease-out forwards;
-ms-animation: bounceinright 1s ease-out forwards;
-o-animation: bounceinright 1s ease-out forwards;
animation: eigbounceinrighthty 1s ease-out forwards;
display: block;
}

然后我有一个小的 JQuery 片段,它会在滚动到“开始”类时触发动画。

 ////////////////////////////////
//scroll events
////////////////////////////////
function isElementInViewport(elem) {
var $elem = $(elem);

// Get the scroll position of the page.
var scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
var viewportTop = $(scrollElem).scrollTop();
var viewportBottom = viewportTop + $(window).height();

// Get the position of the element on the page.
var elemTop = Math.round( $elem.offset().top );
var elemBottom = elemTop + $elem.height();

return ((elemTop < viewportBottom) && (elemBottom > viewportTop));
}

// Check if it's time to start the animation.
function checkAnimation() {
var $elem = $('.row .wpb_content_element');

// If the animation has already been started
if ($elem.hasClass('start')) return;

if (isElementInViewport($elem)) {
// Start the animation
$elem.addClass('start');
}
}

// Capture scroll events
$(window).scroll(function(){
checkAnimation();
});

但我的问题是,当滚动到一个带有“bounceinright”的元素时,它会触发所有具有相同类别的元素。我想知道是否有办法让它们单独触发但属于同一类。任何帮助将不胜感激。

谢谢!

最佳答案

将您的 checkAnimation() 更改为

// Check if it's time to start the animation.
function checkAnimation() {
var $elem = $('.row .wpb_content_element');

$elem.each(function(){
var $singleElement = $(this);
// If the animation has already been started
if ($singleElement.hasClass('start')) return;

if (isElementInViewport($singleElement)) {
// Start the animation
$singleElement.addClass('start');
}
});
}

关于jquery - 当内容滚动到 View 中时激活 CSS3 关键帧动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16843034/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com