html - 在jquery中使用setInterval讓齒輪循環滾動
問題描述
有一齒輪,現在做的動畫是,鼠標懸浮時才會觸發滾動事件,
想做的動畫是,頁面加載完成后,隔一段時間齒輪會自己滾出去再滾回來。向右滾動和向左滾動都能實現,但是不知道jquery中怎么寫“隔一段時間+滾出去再滾回來”
html:
<p id='wheel1'> <p>Running right</p></p><p id = 'wheel2'> <p>Running left</p></p>
css:
<style type='text/css'> #wheel1{width: 150px;height: 150px;background-color: pink;border:5px dotted purple;border-radius: 80px;float: right; } #wheel2{width: 150px;height: 150px;background-color: pink;border:5px dotted purple;border-radius: 80px; } #wheel2:hover{transform: translate(1000px) rotate(720deg);transition: transform 8s ease; } #wheel1:hover{transform: translate(-500px) rotate(-720deg);transition: transform 8s ease; } p{font-size: 25px;color: white;margin: 30px; }
問題解答
回答1://到時見的時候#wheel1{width: 150px;height: 150px;background-color: pink;border:5px dotted purple;border-radius: 80px;float: right;animation: myrotate2 8s ease forwards; } #wheel2{width: 150px;height: 150px;background-color: pink;border:5px dotted purple;border-radius: 80px;animation: myrotate1 8s ease forwards; } @keyframes myrotate1{from{transform: translate(0px) rotate(0deg);}to{transform: translate(1000px) rotate(720deg)} } @keyframes myrotate2{from{transform: translate(0px) rotate(0deg);}to{transform: translate(-500px) rotate(-720deg)}} p{font-size: 25px;color: white;margin: 30px; }回答2:
隔一段時間使用setInterval函數:
setInterval(function(){ 滾出去再滾回來();},一段時間);回答3:
方法一:純CSS 實現給兩個齒輪添加向左滾 和 向右滾的樣式html
<p class='roll-left'> <p>Running right</p></p><p class='roll-right'> <p>Running left</p></p>
在樣式里添加了無限循環滾動的動畫。如果需要滾出去隔一會再回來,可以把translate(-1000px)的值增大,比如 2000px,根據需求自己控制。translate 的值增大后,需要響應的增大 rotate 的值,也是根據需求自己調節就行了。css
#wheel1, #wheel2{ width: 150px; height: 150px; background-color: pink; border:5px dotted purple; border-radius: 80px; position: absolute;}#wheel1{ right: 0;}p{ font-size: 25px; color: white; margin: 30px;}.roll-left{ animation: roll-left 6s linear infinite; // 給動畫添加 infinite 值,讓動畫無限循環 -webkit-animation-direction:alternate; // 反向執行動畫 animation-direction:alternate;}.roll-right{ animation: roll-right 6s linear infinite; -webkit-animation-direction:alternate; animation-direction:alternate;}@keyframes roll-left{ from{} to {transform: translate(-1000px) rotate(-720deg)}}@keyframes roll-right{ from{} to{transform: translate(1000px) rotate(720deg)}}
方法二:使用jquery 控制如果想用 jquery 控制的話,css 需要修改一下
.roll-left{ animation: roll-left 8s linear;}.roll-right{ animation: roll-right 8s linear;}@keyframes roll-left{ 0% {} 50% {transform: translate(-1000px) rotate(-720deg)} 100% {}}@keyframes roll-right{ 0% {} 50% {transform: translate(1000px) rotate(720deg)} 100% {}}
js
setInterval(function(){ $(’#wheel1’).addClass(’roll-left’).one(’animationend’, function() { // 每次動畫完成后移除樣式 $(’#wheel1’).removeClass(’roll-left’); });}, 2000); // 通過修改這個數值去控制每隔多久執行一次
相關文章:
1. [前端求職必看]前端開發面試題與答案精選_擴展問題2. javascript - 在top.jsp點擊退出按鈕后,right.jsp進行頁面跳轉,跳轉到login.jsp3. javascript - 下面的這段算法代碼求解釋4. mac連接阿里云docker集群,已經卡了2天了,求問?5. css3 - 在sublime text里, 如何讓emmet生成的帶前綴css屬性垂直對齊?6. javascript - js 有什么優雅的辦法實現在同時打開的兩個標簽頁間相互通信?7. java - spring-data Jpa 不需要執行save 語句,Set字段就可以自動執行保存的方法?求解8. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點9. javascript - angular中如何創建一個能被不同模塊中組件都能訪問其屬性和方法的對象10. 想找個php大神仿個網站。
