From 5ea87bb535cf44e12ee514d8bf025406a39c595b Mon Sep 17 00:00:00 2001 From: luchenqun Date: Fri, 17 Mar 2017 14:29:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=9A=8F=E6=9C=BA=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E7=83=AD=E9=97=A8=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/random-hover.png | Bin 0 -> 777 bytes public/images/random.png | Bin 0 -> 623 bytes public/scripts/controllers/hot-controller.js | 67 ++++++++++++++++--- public/views/hot.html | 9 ++- 4 files changed, 64 insertions(+), 12 deletions(-) create mode 100644 public/images/random-hover.png create mode 100644 public/images/random.png diff --git a/public/images/random-hover.png b/public/images/random-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..fa07d8ad0a47f0d73ce71b3185b75f74ae1f9287 GIT binary patch literal 777 zcmV+k1NQuhP)6@*j(E&!qqj4KG-;GiA9 zktIJ#ENBHhnFeje&s)>cfB}5GJS( z1u{WV-RB=nIL@bzfSD%D{$0{znY6mU*mW2u3{;K#7%j@Jr6VOkyv-p4GY|&TE4tZc zSHI@1vBxeMYUV*Kxd0u>VOF@0Vf7$i;&?eg(flX zOfbxNCPKiBOnPJ677;#Y_Awp=M*iFS?A;zWl;kya05fj%5&CL{C&K#cWWvStiu#+P zmNdq<^%P7YkQlf$ZSV7fUq7TA(-YGNMQ;!DQQkVhC!B_!_QLV=k=KCl* zz`!9q8Jzx|bg8hO-hd1+)<6-I&w;L>p_b?n;b$HwWPAxcniUne3|BDbNzLT#tw)DE zaoKFFoej4wf-|jK1Eo{9YjkV?%K`Z;FDo;nnDIFEXzwnaz*++(g>8t=DUJ|GqqK=Y zk&Qi&IXcf%kE(T_M8;*=kDa9y7tQ|B> z5>_oSly9xl1ncRvQj7~`^hE=0Yktxi09>z$FI&oZ9vT&6bcVuQYXpHuW7{*uF8&Ov zvfik(cUO#MKx}RIR*bfeZ0!!B7;T-|*d0tU+BmbZDN>9tN%fMF_nP#I00000NkvXX Hu0mjf(0E%7 literal 0 HcmV?d00001 diff --git a/public/images/random.png b/public/images/random.png new file mode 100644 index 0000000000000000000000000000000000000000..2982e8a04d1778ed3d5550af6de404a4fa2466b0 GIT binary patch literal 623 zcmV-#0+9WQP)jqka0_Z~0W@70+CGmNyT-H5F zyOOpu-y0{M&6NV^uh0-EzHnO@cP8nk1Elm`4U`ASCVFp8$j`7)cP8nu)Y0*LQUk<% zKa!3l85A%tl31o8YFZ0KQAxI=mC5-{POqd!&nmOZszwI+X?lLf6t%~vT zG8|KHMc->+_*-e);|t6dPJp@ZC4FRe=T-YWC!8IO_IwWG0b&el@unM+P>0_EVpqk* zb-)XBRS2{I;{`IAAKR@@L)3}u+36<(T7szoVk|1Lgm~^c0kqQ^zT|N(S9WXTnYc+M>w_)NDPF2U5@Svsg8+y|rzIMxe`4ecp<$evLUqhTwFhH$Vx$qiNrf%cz&F5# z#X0rRp;UZzEI{QFqg}4KSYbO0nA8r#OB|%R%Qb$%s>B$-tlej*gKv% { @@ -94,7 +95,6 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo $scope.detailBookmark = function(b) { var bookmark = $.extend(true, {}, b); // 利用jQuery执行深度拷贝 bookmark.own = false; - bookmark.own = false; bookmark.tags = [{ id: -1, name: '热门收藏' @@ -104,7 +104,7 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo } $scope.loadCardData = function() { - if (!$scope.loadBusy) { + if (!$scope.loadBusy && !$scope.random) { console.log('loadCardData.........') var menusScope = $('div[ng-controller="menuCtr"]').scope(); var login = (menusScope && menusScope.login) || false; @@ -117,6 +117,22 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo } } + $scope.randomHotBookmarks = function() { + var menusScope = $('div[ng-controller="menuCtr"]').scope(); + var login = (menusScope && menusScope.login) || false; + if (login) { + $scope.random = true; + var beginDay = new Date(2016, 7, 15); // 注意日期是从0 ~ 11 + var now = new Date(); + var dayGap = parseInt(Math.abs(now - beginDay) / (1000 * 60 * 60 * 24)) + 1; + $scope.curDay = -(parseInt(Math.random() * 1000000) % dayGap); + $scope.bookmarks = []; + getHotBookmarks(); + } else { + $scope.toastrId = toastr.info('您只有先登录,才能使用查看随机热门标签', "提示"); + } + } + function getHotBookmarks() { getHotBookmarksbyAPI(); // 先实时获取,实时获取失败再从缓存中获取 @@ -151,21 +167,29 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo success: function(json) { // console.log('success............', json, JSON.stringify(json.data.list[0]) ); var alterRex = "/mmbiz.qpic.cn|images.jianshu.io|zhimg.com/g"; - var alterImg = "./images/snap/default.png" + var defaultSnap = "./images/snap/default.png" + var defaultFavicon = "./images/favicon/default.ico" $timeout(function() { - $scope.loadBusy = false; if (json.code == 200) { var bookmarkList = json.data.list; bookmarkList.forEach((bookmark) => { var b = {}; b.title = bookmark.title; b.url = bookmark.url; - b.favicon_url = bookmark.sourceLogo; + b.favicon_url = bookmark.sourceLogo || defaultFavicon; b.created_by = bookmark.sourceName; + b.snap_url = defaultSnap; if (bookmark.imageList.length >= 1) { - b.snap_url = (json.data.pageNo == 1 ? (bookmark.imageList[0].url.match(alterRex) != null ? alterImg : bookmark.imageList[0].url) : alterImg); - } else { - b.snap_url = alterImg; + if (bookmark.imageList[0].url) { + b.snap_url = (json.data.pageNo == 1 ? (bookmark.imageList[0].url.match(alterRex) != null ? defaultSnap : bookmark.imageList[0].url) : defaultSnap); + } else { + for (var i = 0; i < bookmark.images.length; i++) { + if (bookmark.images[i]) { + b.snap_url = bookmark.images[i]; + break; + } + } + } } b.fav_count = bookmark.favCount; b.created_at = $filter('date')(new Date(bookmark.updatetime), "yyyy-MM-dd HH:mm:ss"); @@ -176,6 +200,8 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo $scope.bookmarks.push(b); }) $scope.curDay--; + $scope.loadBusy = false; + updateEditPos(); } else { toastr.error('获取热门书签失败!失败原因:' + json.message + "。将尝试从缓存中获取!", "提示"); getHotBookmarksbyCache(); @@ -184,7 +210,6 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo }, error: function(json) { toastr.error('获取热门书签失败!失败原因:' + json.message + "。将尝试从缓存中获取!", "提示"); - $scope.loadBusy = false; getHotBookmarksbyCache(); } }); @@ -205,14 +230,20 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo }) $scope.curDay--; $scope.loadBusy = false; + updateEditPos(); }) .catch((err) => { toastr.error("getHotBookmarksbyCache: " + JSON.stringify(err), "提示"); $scope.curDay--; $scope.loadBusy = false; + updateEditPos(); }); } + // TODO: 我要将编辑按钮固定在容器的右上角 + $(window).resize(updateEditPos); + updateEditPos(); + function curentDate(i, format) { if (i == undefined) { i = 0; @@ -237,4 +268,22 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo return t; } + + function updateEditPos() { + for (var i = 1; i <= 100; i += 10) { + setTimeout(function() { + var offset = $('.js-hot-card').offset(); + if (offset) { + var t = offset.top; + var l = offset.left; + var w = $('.js-hot-card').width(); + $('.js-hot-random').offset({ + top: t + 10, + left: l + w - 10, + }) + } + }, 100 * i) + } + } + }]); diff --git a/public/views/hot.html b/public/views/hot.html index 5641b08..a7678d9 100644 --- a/public/views/hot.html +++ b/public/views/hot.html @@ -1,8 +1,8 @@ -
+
-
+
{{bookmark.title}}
@@ -23,6 +23,9 @@
-
+
+ +
+
正在加载中...