Skip to content

Commit 71e2749

Browse files
author
shengyonggen
committed
优化选择器,优化点击图弹框,优化点击图颜色
1 parent 335fe32 commit 71e2749

File tree

5 files changed

+63
-19
lines changed

5 files changed

+63
-19
lines changed

sensorsdata.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/sdk.js

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2490,13 +2490,13 @@ var heatmap_render = {
24902490

24912491
},
24922492
heatData:function(data){
2493-
var heat = [0.005,0.01,0.05,0.1];
2493+
var heat = [0.005,0.01,0.025,0.05,0.1,0.5];
24942494
for(var i=0; i<heat.length; i++){
24952495
if(data < heat[i]){
2496-
return 4-i;
2496+
return i;
24972497
}
24982498
}
2499-
return 0;
2499+
return 8;
25002500
},
25012501
heatDataTitle: function(data){
25022502
return ('点击次数 ' + data.value_fix
@@ -2572,6 +2572,7 @@ var heatmap_render = {
25722572
bindEffect: function(){
25732573
// 浮动层的内容的初始化
25742574
var mouseoverEvent = null;
2575+
var target_is_on_float = false;
25752576

25762577
var me = this;
25772578
var str = '<div style="padding: 8px;"><div style="color: #757575">当前元素内容:</div><div style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">{{data_current_content}}</div></div><div style="background: rgba(0,0,0,0.1); height:1px;"></div><div style="padding: 8px;"><div>点击次数: {{value_fix}}</div><div title="点击次数/当前页面的浏览次数">点击率: {{data_click_percent}}</div><div title="点击次数/当前页面的点击总次数">点击占比: {{data_page_percent}}</div></div><div style="background: rgba(0,0,0,0.1); height:1px;"></div><div style="padding: 8px;"><div style="color: #757575">历史内容:</div><div style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">{{data_top_value}}</div></div><div style="background: rgba(0,0,0,0.1); height:1px;"></div><div style="padding: 6px 8px;"><a style="color:#2a90e2;text-decoration: none;" href="{{data_user_link}}" target="_blank">查看点击用户列表</a ></div>';
@@ -2610,6 +2611,16 @@ var heatmap_render = {
26102611
var eleBtnRight = document.getElementById('sa_heat_float_right_box_right_btn');
26112612
var eleBtnLeft = document.getElementById('sa_heat_float_right_box_left_btn');
26122613

2614+
2615+
_.addEvent(div,'mouseleave',function(){
2616+
target_is_on_float = false;
2617+
div.style.display = 'none';
2618+
});
2619+
2620+
_.addEvent(div,'mouseenter',function(){
2621+
target_is_on_float = true;
2622+
});
2623+
26132624
_.addEvent(eleSlideDown,'mousedown',function(e){
26142625
if(e.target.id === 'sa_heat_float_right_box_slidedown'){
26152626
_.draggable(div,e);
@@ -2724,6 +2735,7 @@ var heatmap_render = {
27242735

27252736
// 绑定浮动层的显示
27262737
var timeEle = 600;
2738+
27272739
function showBoxDetailContent(e){
27282740
mouseoverEvent = e;
27292741
var target = e.target;
@@ -2767,13 +2779,23 @@ var heatmap_render = {
27672779
if(typeof className !== 'string' || (' ' + className + ' ').indexOf(' sa-click-area ') === -1){
27682780
return false;
27692781
}
2782+
target.onmouseleave = function(){
2783+
setTimeout(function(){
2784+
if(!target_is_on_float){
2785+
target_is_on_float = false;
2786+
div.style.display = 'none';
2787+
}
2788+
},timeEle);
2789+
}
2790+
27702791
showBoxDetail(e);
27712792

27722793
});
27732794

2795+
27742796
},
27752797
setCssStyle: function(){
2776-
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,0.06);cursor:move;height:30px;background:#E1E1E1;color: #999;clear:both;}.sa-heat-box-effect-2017314{animation-duration:0.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314;}@keyframes sa-heat-box-effect-2017314{0%{opacity:0.6}100%{opacity:1}}.sa-click-area{position:relative;box-shadow:inset 0 0 0 2px #ffa500}.sa-click-area:before{content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{cursor:pointer;background:rgba(255,0,0,.5);box-shadow:inset 0 0 0 2px #f00}.sa-click-area.sa-click-area1:before{background:rgba(255,165,0,.5);box-shadow:inset 0 0 0 2px #ffa500}.sa-click-area.sa-click-area2:before{background:rgba(255,255,0,.5);box-shadow:inset 0 0 0 2px #ff0}.sa-click-area.sa-click-area3:before{background:rgba(64,224,208,.5);box-shadow:inset 0 0 0 2px #40e0d0}.sa-click-area.sa-click-area4:before{box-shadow:inset 0 0 0 2px #00f;background:rgba(0,0,255,.5)}.sa-click-area.sa-click-area0:hover::before{background:rgba(255,0,0,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area1:hover::before{background:rgba(255,165,0,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area2:hover::before{background:rgba(255,255,0,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area3:hover::before{background:rgba(64,224,208,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area4:hover::before{background:rgba(0,0,255,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area0:hover{box-shadow:0 0 0 3px #f00 inset}.sa-click-area.sa-click-area1:hover{box-shadow:0 0 0 3px #ffa500 inset}.sa-click-area.sa-click-area2:hover{box-shadow:0 0 0 3px #ff0 inset}.sa-click-area.sa-click-area3:hover{box-shadow:0 0 0 3px #40e0d0 inset}.sa-click-area.sa-click-area4:hover{box-shadow:0 0 0 3px #00f inset}.sa-click-area .sa-click-area:before{background:none!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:bold;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
2798+
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,.06);cursor:move;height:30px;background:#E1E1E1;color:#999;clear:both}.sa-heat-box-effect-2017314{animation-duration:.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314}@keyframes sa-heat-box-effect-2017314{0%{opacity:.6}100%{opacity:1}}.sa-click-area{position:relative}.sa-click-area:before{cursor:pointer;content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{background:rgba(254,254,155,.75);box-shadow:0 0 0 2px rgba(254,254,155,1) inset}.sa-click-area.sa-click-area0:hover::before{background:rgba(254,254,155,.85)}.sa-click-area.sa-click-area1:before{background:rgba(255,236,142,.75);box-shadow:0 0 0 2px rgba(255,236,142,1) inset}.sa-click-area.sa-click-area1:hover::before{background:rgba(255,236,142,.85)}.sa-click-area.sa-click-area2:before{background:rgba(255,188,113,.75);box-shadow:0 0 0 2px rgba(255,188,113,1) inset}.sa-click-area.sa-click-area2:hover::before{background:rgba(255,188,113,.85)}.sa-click-area.sa-click-area3:before{background:rgba(255,120,82,.75);box-shadow:0 0 0 2px rgba(255,120,82,1) inset}.sa-click-area.sa-click-area3:hover::before{background:rgba(255,120,82,.85)}.sa-click-area.sa-click-area4:before{background:rgba(255,65,90,.75);box-shadow:0 0 0 2px rgba(255,65,90,1) inset}.sa-click-area.sa-click-area4:hover::before{background:rgba(255,65,90,.85)}.sa-click-area.sa-click-area5:before{background:rgba(199,0,18,.75);box-shadow:0 0 0 2px rgba(199,0,18,1) inset}.sa-click-area.sa-click-area5:hover::before{background:rgba(199,0,18,.85)}.sa-click-area.sa-click-area6:before{background:rgba(127,0,79,.75);box-shadow:0 0 0 3px rgba(127,0,79,1) inset}.sa-click-area.sa-click-area6:hover::before{background:rgba(127,0,79,.85)}.sa-click-area .sa-click-area:before{background:0 0!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:700;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
27772799

27782800
var style = document.createElement('style');
27792801
style.type = 'text/css';
@@ -2806,11 +2828,11 @@ var heatmap = {
28062828
return -1;
28072829
},
28082830
selector:function (el){
2809-
var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
2831+
//var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
28102832
var i = el.parentNode && 9 == el.parentNode.nodeType ? -1 : this.getDomIndex(el);
28112833
return el.tagName.toLowerCase()
28122834
+ (el.id ? '#' + el.id : '')
2813-
+ (classname ? classname.replace(/^| +/g, '.') : '')
2835+
//+ (classname ? classname.replace(/^| +/g, '.') : '')
28142836
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
28152837
},
28162838
getDomSelector : function(el,arr) {

src/sensorsdata.full.js

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ if(typeof JSON!=='object'){JSON={}}(function(){'use strict';var rx_one=/^[\],:{}
8080
, slice = ArrayProto.slice
8181
, toString = ObjProto.toString
8282
, hasOwnProperty = ObjProto.hasOwnProperty
83-
, LIB_VERSION = '1.7.1';
83+
, LIB_VERSION = '1.7.2';
8484

8585
sd.lib_version = LIB_VERSION;
8686

@@ -2560,13 +2560,13 @@ var heatmap_render = {
25602560

25612561
},
25622562
heatData:function(data){
2563-
var heat = [0.005,0.01,0.05,0.1];
2563+
var heat = [0.005,0.01,0.025,0.05,0.1,0.5];
25642564
for(var i=0; i<heat.length; i++){
25652565
if(data < heat[i]){
2566-
return 4-i;
2566+
return i;
25672567
}
25682568
}
2569-
return 0;
2569+
return 8;
25702570
},
25712571
heatDataTitle: function(data){
25722572
return ('点击次数 ' + data.value_fix
@@ -2642,6 +2642,7 @@ var heatmap_render = {
26422642
bindEffect: function(){
26432643
// 浮动层的内容的初始化
26442644
var mouseoverEvent = null;
2645+
var target_is_on_float = false;
26452646

26462647
var me = this;
26472648
var str = '<div style="padding: 8px;"><div style="color: #757575">当前元素内容:</div><div style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">{{data_current_content}}</div></div><div style="background: rgba(0,0,0,0.1); height:1px;"></div><div style="padding: 8px;"><div>点击次数: {{value_fix}}</div><div title="点击次数/当前页面的浏览次数">点击率: {{data_click_percent}}</div><div title="点击次数/当前页面的点击总次数">点击占比: {{data_page_percent}}</div></div><div style="background: rgba(0,0,0,0.1); height:1px;"></div><div style="padding: 8px;"><div style="color: #757575">历史内容:</div><div style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">{{data_top_value}}</div></div><div style="background: rgba(0,0,0,0.1); height:1px;"></div><div style="padding: 6px 8px;"><a style="color:#2a90e2;text-decoration: none;" href="{{data_user_link}}" target="_blank">查看点击用户列表</a ></div>';
@@ -2680,6 +2681,16 @@ var heatmap_render = {
26802681
var eleBtnRight = document.getElementById('sa_heat_float_right_box_right_btn');
26812682
var eleBtnLeft = document.getElementById('sa_heat_float_right_box_left_btn');
26822683

2684+
2685+
_.addEvent(div,'mouseleave',function(){
2686+
target_is_on_float = false;
2687+
div.style.display = 'none';
2688+
});
2689+
2690+
_.addEvent(div,'mouseenter',function(){
2691+
target_is_on_float = true;
2692+
});
2693+
26832694
_.addEvent(eleSlideDown,'mousedown',function(e){
26842695
if(e.target.id === 'sa_heat_float_right_box_slidedown'){
26852696
_.draggable(div,e);
@@ -2794,6 +2805,7 @@ var heatmap_render = {
27942805

27952806
// 绑定浮动层的显示
27962807
var timeEle = 600;
2808+
27972809
function showBoxDetailContent(e){
27982810
mouseoverEvent = e;
27992811
var target = e.target;
@@ -2837,13 +2849,23 @@ var heatmap_render = {
28372849
if(typeof className !== 'string' || (' ' + className + ' ').indexOf(' sa-click-area ') === -1){
28382850
return false;
28392851
}
2852+
target.onmouseleave = function(){
2853+
setTimeout(function(){
2854+
if(!target_is_on_float){
2855+
target_is_on_float = false;
2856+
div.style.display = 'none';
2857+
}
2858+
},timeEle);
2859+
}
2860+
28402861
showBoxDetail(e);
28412862

28422863
});
28432864

2865+
28442866
},
28452867
setCssStyle: function(){
2846-
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,0.06);cursor:move;height:30px;background:#E1E1E1;color: #999;clear:both;}.sa-heat-box-effect-2017314{animation-duration:0.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314;}@keyframes sa-heat-box-effect-2017314{0%{opacity:0.6}100%{opacity:1}}.sa-click-area{position:relative;box-shadow:inset 0 0 0 2px #ffa500}.sa-click-area:before{content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{cursor:pointer;background:rgba(255,0,0,.5);box-shadow:inset 0 0 0 2px #f00}.sa-click-area.sa-click-area1:before{background:rgba(255,165,0,.5);box-shadow:inset 0 0 0 2px #ffa500}.sa-click-area.sa-click-area2:before{background:rgba(255,255,0,.5);box-shadow:inset 0 0 0 2px #ff0}.sa-click-area.sa-click-area3:before{background:rgba(64,224,208,.5);box-shadow:inset 0 0 0 2px #40e0d0}.sa-click-area.sa-click-area4:before{box-shadow:inset 0 0 0 2px #00f;background:rgba(0,0,255,.5)}.sa-click-area.sa-click-area0:hover::before{background:rgba(255,0,0,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area1:hover::before{background:rgba(255,165,0,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area2:hover::before{background:rgba(255,255,0,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area3:hover::before{background:rgba(64,224,208,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area4:hover::before{background:rgba(0,0,255,0.8) none repeat scroll 0 0}.sa-click-area.sa-click-area0:hover{box-shadow:0 0 0 3px #f00 inset}.sa-click-area.sa-click-area1:hover{box-shadow:0 0 0 3px #ffa500 inset}.sa-click-area.sa-click-area2:hover{box-shadow:0 0 0 3px #ff0 inset}.sa-click-area.sa-click-area3:hover{box-shadow:0 0 0 3px #40e0d0 inset}.sa-click-area.sa-click-area4:hover{box-shadow:0 0 0 3px #00f inset}.sa-click-area .sa-click-area:before{background:none!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:bold;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
2868+
var css = '.sa-heat-box-head-2017322{border-bottom:1px solid rgba(0,0,0,.06);cursor:move;height:30px;background:#E1E1E1;color:#999;clear:both}.sa-heat-box-effect-2017314{animation-duration:.5s;animation-fill-mode:both;animation-iteration-count:1;animation-name:sa-heat-box-effect-2017314}@keyframes sa-heat-box-effect-2017314{0%{opacity:.6}100%{opacity:1}}.sa-click-area{position:relative}.sa-click-area:before{cursor:pointer;content:"";width:100%;position:absolute;left:0;top:0;bottom:0}.sa-click-area.sa-click-area0:before{background:rgba(254,254,155,.75);box-shadow:0 0 0 2px rgba(254,254,155,1) inset}.sa-click-area.sa-click-area0:hover::before{background:rgba(254,254,155,.85)}.sa-click-area.sa-click-area1:before{background:rgba(255,236,142,.75);box-shadow:0 0 0 2px rgba(255,236,142,1) inset}.sa-click-area.sa-click-area1:hover::before{background:rgba(255,236,142,.85)}.sa-click-area.sa-click-area2:before{background:rgba(255,188,113,.75);box-shadow:0 0 0 2px rgba(255,188,113,1) inset}.sa-click-area.sa-click-area2:hover::before{background:rgba(255,188,113,.85)}.sa-click-area.sa-click-area3:before{background:rgba(255,120,82,.75);box-shadow:0 0 0 2px rgba(255,120,82,1) inset}.sa-click-area.sa-click-area3:hover::before{background:rgba(255,120,82,.85)}.sa-click-area.sa-click-area4:before{background:rgba(255,65,90,.75);box-shadow:0 0 0 2px rgba(255,65,90,1) inset}.sa-click-area.sa-click-area4:hover::before{background:rgba(255,65,90,.85)}.sa-click-area.sa-click-area5:before{background:rgba(199,0,18,.75);box-shadow:0 0 0 2px rgba(199,0,18,1) inset}.sa-click-area.sa-click-area5:hover::before{background:rgba(199,0,18,.85)}.sa-click-area.sa-click-area6:before{background:rgba(127,0,79,.75);box-shadow:0 0 0 3px rgba(127,0,79,1) inset}.sa-click-area.sa-click-area6:hover::before{background:rgba(127,0,79,.85)}.sa-click-area .sa-click-area:before{background:0 0!important}.sa-click-area:after{height:14px;line-height:14px;margin:-7px 0 0 -28px;width:56px;color:#fff;content:attr(data-click);font-size:14px;font-weight:700;left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;text-shadow:1px 1px 2px #000;top:50%;z-index:10}';
28472869

28482870
var style = document.createElement('style');
28492871
style.type = 'text/css';
@@ -2876,11 +2898,11 @@ var heatmap = {
28762898
return -1;
28772899
},
28782900
selector:function (el){
2879-
var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
2901+
//var classname = _.trim(el.className.baseVal ? el.className.baseVal : el.className);
28802902
var i = el.parentNode && 9 == el.parentNode.nodeType ? -1 : this.getDomIndex(el);
28812903
return el.tagName.toLowerCase()
28822904
+ (el.id ? '#' + el.id : '')
2883-
+ (classname ? classname.replace(/^| +/g, '.') : '')
2905+
//+ (classname ? classname.replace(/^| +/g, '.') : '')
28842906
+ (~i ? ':nth-child(' + (i + 1) + ')' : '');
28852907
},
28862908
getDomSelector : function(el,arr) {

version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var sensorsdata_js_sdk_latest_version = '1.6.56';
1+
var sensorsdata_js_sdk_latest_version = '1.7.1';

vtrack.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)