Vue結合uniapp實現水平公告欄
參考文件:https://blog.csdn.net/jjw_zyfx/article/details/102225767
<view class="announcement">
<view class="ziti">
鮮果快報:
</view>
<view class="gonggao">
<view style="color: #FFC944;">每日 | </view>
<view class="outer-box">
<view class="inner-box1" :style="{'position': 'relative','right':scrollLeft+'px'}">
<view v-for="(item,index) in noticeList" :key="index">
{{item}}
</view>
</view>
<!--注意inner-box1和inner-box2的資料必須一樣,並且樣式也得一樣
inner-box2包裹的頂部要注意和inner-box1的底部的距離應和其包裹的
每兩個div之間的距離一樣否則會出現卡頓的效果-->
<view class="inner-box2" :style="{'position': 'relative','right':scrollLeft+'px'}">
<view v-for="(item,index) in noticeList" :key="index">
{{item}}
</view>
</view>
</view>
</view>
</view>
#js部分
export default {
data() {
return {
noticeList: ['每日一條公告', '每日二條公告', '每日san條公告'],
scrollLeft:0
}
},
onReady() {
console.log('渲染成功!!!');
let outerBox;
let innerBox;
uni.createSelectorQuery().selectAll(".outer-box").scrollOffset(res=>{
outerBox= res["0"];
}).exec();
uni.createSelectorQuery().selectAll(".inner-box1").boundingClientRect(res=>{
innerBox= res["0"];
}).exec();
setInterval(() => {
this.scrollFunc(outerBox, innerBox)
}, 30)
},
methods: {
scrollFunc(outerBox, innerBox) {
if (outerBox.scrollLeft >= innerBox.width) {
outerBox.scrollLeft = 0;
} else {
outerBox.scrollLeft ++;
}
this.scrollLeft = outerBox.scrollLeft;
}
}
}
#css部分
.announcement {
display: flex;
justify-content: flex-start;
align-items: center;
width: 100%;
margin: 0 auto;
font-size: 20rpx;
}
.gonggao {
border-radius: 45rpx;
background-color: #FAFAFA;
width: 70%;
padding: 6rpx 20rpx;
font-size: 15rpx;
margin-left: 20rpx;
display: flex;
justify-content: flex-start;
align-items: center;
}
.outer-box {
text-align: center;
width: 80%;
margin: 0 auto;
overflow: hidden;
/* 這個屬性很重要一定要設定*/
display: flex;
flex-flow: row nowrap;
}
.inner-box1,
.inner-box2 {
display: flex;
flex-flow: row nowrap;
white-space: nowrap;
}
.inner-box1 view,
.inner-box2 view {
margin-right: 20px;
}
相關文章
- uniapp公告APP
- Vue中結合clipboard實現複製功能Vue
- Vue結合Django-Rest-Frameword結合實現登入認證(一)VueDjangoREST
- Vue結合Django-Rest-Frameword結合實現登入認證(二)VueDjangoREST
- Vue結合原生js實現自定義元件自動生成VueJS元件
- Vue結合HTML5拖放API 實現目錄拖拽~VueHTMLAPI
- 結合 UI 框架實現可配置 Vue 表單元件淺析UI框架Vue元件
- jQuey網站公告水平滾動程式碼網站
- uniapp實現熱更新APP
- vue實現側邊欄手風琴效果Vue
- React 折騰記 – (3) 結合Mobx實現一個比較靠譜的動態tab水平選單,同時關聯側邊欄React
- React 折騰記 - (3) 結合Mobx實現一個比較靠譜的動態tab水平選單,同時關聯側邊欄React
- 佈局總結-水平居中佈局的實現
- Web與Client是否可以完美結合(在現有技術水平下)?Webclient
- 公告文字水平滾動例項程式碼
- Express 結合 Webpack 實現HMRwiExpressWeb
- uniapp自定義導航欄APP
- Vue 結合 echarts 原生 html5 實現拖拽排版報表系統VueEchartsHTML
- Vue雙向繫結實現Vue
- vue系列--vue是如何實現繫結事件Vue事件
- 公告欄跑馬燈效果程式碼
- 不斷向上滾動的公告欄
- uniapp專案實踐總結(十七)實現滾動觸底載入APP
- 如何實現水平垂直居中?
- 實現水平居中的方法
- uniapp 實現個人資訊的修改APP
- vue實現prop雙向繫結Vue
- Vue3實戰系列:結合 Ant-Design-of-Vue 實踐 Composition APIVueAPI
- uniapp專案實踐總結(十五)使用websocket實現簡易聊天室APPWeb
- VUE Cookbook 系列:實現可配置組合表單Vue
- 記vue下懸浮貼合頂部實現Vue
- uniapp 實現複選下拉框APP
- uniapp更改導航欄按鈕文字APP
- 水平垂直居中的實現方法
- css 水平垂直居中實現方式CSS
- Uniapp 使用 GoEasy 實現 websocket 實時通訊APPGoWeb
- 簡要實現vue雙向繫結Vue
- Vue許可權路由實現總結Vue路由