摘要:先放個效果如果能訪問最好主要原理微信小程序現在實際上還是用的,里面搞動畫效率最高的莫過于使用的了。由于微信小程序中無法獲取到對應元素的寬度,這個時間只能寫死或者根據的長度估算出一個值。
最近有個項目里面用到跑馬燈,網上搜了下,雖然有人貼出來過一些實現,但是實際上都存在一些個問題。
哎,再造個輪子吧。
先放個效果:
p.s. 如果能訪問jsfiddle最好:https://jsfiddle.net/650spwen/
主要原理微信小程序現在實際上還是用的webview,里面搞動畫效率最高的莫過于使用CSS3的animation了。
跑馬燈無非就是一直滾動,這很容易想到使用無限循環的animation.
而一直往左滾動的效果,通過css有很多種方式,比如通過改變left, margin-left, tranform: translateX()都可以實現。但是 left 和 margin-left 一般會導致布局的重新計算。使用transform: translateX()性能會更好一些。
主要實現代碼首先,視圖模板wxml中:
css3 + animation跑馬燈 {{text}} {{text}} {{text}}
這里為了連續無限滾動,特意復制了2份跑馬燈的內容(.content)。
然后,樣式wxss中:
@keyframes kf-marque-animation{ 0% { transform: translateX(0); } 100% { transform: translateX(-33.3%); } } .marquee{ width: 100%; height: 44px; line-height: 44px; background: #fff; border: none; display: block; margin: 0 auto; overflow: hidden; white-space: nowrap; text-overflow: clip; position: relative; font-size: 28rpx; } .marquee .content{ display: inline-block; position: relative; padding-right: 0px; animation: kf-marque-animation 11.3s linear infinite; white-space: nowrap; }
最后,js里面隨便給 page.data.text 賦值一段文本即可。具體js略。
如果要調整滾動速度,可以設置 .content 的元素的動畫時間( animation-duration 樣式)。由于微信小程序中無法獲取到對應元素的寬度,這個時間只能寫死或者根據text的長度估算出一個值。
完整的示例在jsfiddle上有個html版本的:https://jsfiddle.net/650spwen/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83193.html
摘要:層疊即表示允許以多種方式來描述樣式,一個元素可以被渲染呈現出多種樣式。可以讓屬性的變化過程持續一段時間,而不是立即生效。比如,將元素的顏色從白色改為黑色,通常這個改變是立即生效的,使用后,將按一個曲線速率變化。 showImg(https://segmentfault.com/img/bVZwyL?w=900&h=385); CSS 的全稱是 Cascading Style Sheet...
摘要:規定動畫的時長。注意子菜單要用隱藏,在顯示的時候再設置。如果不加,實際上子菜單,以及子菜單下面的一直在頁面上,如果鼠標移上去子菜單,以及子菜單下面的。 1.前言 在自己的專欄上寫了十幾篇文章了,都是與js有關的。暫時還沒有寫過關于css3的文章。css3,給我的感覺就是,不難,但是很難玩轉自如。今天,就用css3來實現三個特效,希望這三個特殊能讓大家受到啟發,利用css3做出更好,更炫...
摘要:所以我把這個為了區分這個組件包是水平方向的,改名為三基于的文字跑馬燈組件大致了解怎么發組件包以后,我們再來看看需要發布出去的組件包怎么寫的。 一、前言 總結下最近工作上在移動端實現的一個跑馬燈效果,最終效果如下: showImg(https://segmentfault.com/img/remote/1460000009540502?w=555&h=380); 印象中好像HTML標簽的...
閱讀 804·2023-04-25 19:40
閱讀 3405·2023-04-25 17:41
閱讀 2993·2021-11-11 11:01
閱讀 2588·2019-08-30 15:55
閱讀 3217·2019-08-30 15:44
閱讀 1347·2019-08-29 14:07
閱讀 478·2019-08-29 11:23
閱讀 1314·2019-08-27 10:54