當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

利用JS制作旋轉木馬效果

1. 概述

1.1 預期效果

目前很多畫面都要用旋轉木馬的效果來展示。效果如下:
222


1.2 實現思路

可以通過 JavaScript 的來實現上圖的效果。

2. 示例

2.1 準備模板

新建一個決策報表,在裏面拖進一個【絕對畫布塊】,如下圖所示:

222


2.2 添加事件

選中「絕對畫布塊」組件,添加一個「初始化後」事件,如下圖所示:

JavaScript 代碼如下:

注:替換照片時,直接在 JavaScript 中更改圖片鏈接。

setTimeout(function() {  
    $("div[widgetname='ABSOLUTE0']").append("<div id=\"box\"><div class=\"slide\"><ul><li><a href=\"#\"><img src=\"http://img.mukewang.com/52da54ed0001ecfa04120172.jpg\" alt=\"啊啊啊\"></a></li><li><a href=\"#\"><img src=\"http://img.mukewang.com/52da54ed0001ecfa04120172.jpg\" alt=\"啊啊啊\"></a></li><li><a href=\"#\"><img src=\"http://img.mukewang.com/52da54ed0001ecfa04120172.jpg\" alt=\"啊啊啊\"></a></li><li><a href=\"#\"><img src=\"http://img.mukewang.com/52da54ed0001ecfa04120172.jpg\" alt=\"啊啊啊\"></a></li><li><a href=\"#\"><img src=\"http://img.mukewang.com/52da54ed0001ecfa04120172.jpg\" alt=\"啊啊啊\"></a></li></ul><div class=\"arraw\"><a href=\"javascript:;\" class=\"next\"></a><a href=\"javascript:;\" class='prev'></a></div></div></div><script>var box = document.querySelector('#box');var slide = document.querySelector('.slide');var arraw = document.querySelector('.arraw');var lis = document.querySelectorAll('li');var json = [  {   width:400,top:20,left:120,opacity:20,z:2,id:1},{  width:600,top:70,left:50,opacity:60,z:3,id:2},{   width:800,top:100,left:150,opacity:100,z:4,id:3},{ width:600,top:70,left:350,opacity:60,z:3,id:4},{   width:400,top:20,left:370,opacity:20,z:2,id:5}];var next = document.querySelector('.next');var prev = document.querySelector('.prev');var timer = null;var flag = true;move();run();function run(){clearInterval(timer);timer = setInterval(function(){if(flag == true){flag = false;move(true);}},500);}function move(x){if(x != undefined){if(x){json.push(json.shift());}else{json.unshift(json.pop());};};for(var i = 0; i<json.length; i++){animate(lis[i],{width: json[i].width,top: json[i].top,left: json[i].left,opacity: json[i].opacity,zIndex: json[i].z},function(){flag = true;})};}function animate(obj, json, callback){clearInterval(obj.timer);obj.timer = setInterval(function(){var stoped = true;for(var k in json){var leader = 0;if(k == 'opacity'){leader = Math.round(getStyle(obj, k)*100) || 100;}else {leader = parseInt(getStyle(obj, k)) || 0;};var step = (json[k]-leader)/10;step = step > 0? Math.ceil(step) : Math.floor(step);leader = leader + step;if(k == 'opacity'){obj.style[k] = leader/100;obj.style['filter'] = 'alpha(opacity='+ leader +')';}else if(k == 'zIndex'){obj.style['zIndex'] = json[k];console.log(666);}else{obj.style[k] = leader + \"px\";}if(leader != json[k]){stoped = false;}};if(stoped){clearInterval(obj.timer);callback && callback();};},50);};function getStyle(obj, attr){if(obj.currentStyle){return obj.currentStyle[attr];}else{return window.getComputedStyle(obj, null)[attr];};};</script>")  
},  
20);

2.3 設置樣式

1)準備一個xzmm.css 文件,将樣式代碼寫進去,保存在\%FR_HOME%\webapps\webroot\help\css文件夾下,如下圖所示:

點擊可下載:xzmm.css

2)選擇 「服務器->服務器配置->引入 CSS,引用剛剛創建的 CSS 文件,如下圖所示:

2.4 效果預覽

保存模板,點擊「分頁預覽」,效果如 1.1 節預期效果所示:

注:不支持移動端。

3. 模板下載

已完成模板可參考%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\js實現旋轉木馬效果.cpt 

點擊可下載模板:js實現旋轉木馬效果.frm

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s后關閉

反饋已提交

網絡繁忙