我一直負責添加一條虛線,它將鏈接頁面上的一組插圖。我一直在尋找一段時間,並遇到了一些沒有破折號(例如http://cbron.github.io/blog/2013/12/30/draw-svg-path-on-scroll-tutorial/)的正常線條的例子,這是我以前用過的。在滾動條上畫一條彎曲的虛線SVG
從我可以告訴這種技術將不會用虛線工作,因爲它使用筆劃短劃線數組實際上動畫的線條圖。也許我錯了?
有沒有人知道用虛線實現相同效果的方法?另外需要注意的是,該線條將跨越不同的顏色背景。
任何建議將不勝感激。
更新: 工作液
var line;
var subPaths = [];
window.onload = function(){
line = Snap(document.getElementById("drawMe"));
getSubPaths();
}
window.addEventListener("scroll", drawLine);
function drawLine() {
var percentDrawn = (document.body.scrollTop + document.documentElement.scrollTop)/(document.documentElement.scrollHeight - document.documentElement.clientHeight);
var percentDrawn = Math.round(percentDrawn * 100);
line.attr({
d: subPaths[percentDrawn]
});
}
function getSubPaths(){
var maxLength = line.getTotalLength();
for(var i = 0; i<101; i++){
var currentLength = maxLength*i/100;
subPaths[i] = line.getSubpath(0, currentLength);
}
}
您可以在想要繪製的線條上放置一條虛線,併爲其指定背景的顏色:https://jsfiddle.net/t9kqudxo/但是,由於您移動了不同的顏色背景,因此您可能需要將其分割以更小的塊爲單位......真正取決於你的情況,你也可以在背景上放置一個背景副本,然後「剪下透明破折號」。這並不完美,但我希望能給你一些想法。 – yoshi
@yoshi乾杯!是的,我添加了關於不同背景的部分,因爲我偶然發現了這種技術。我想知道如果snap.svg可以通過動畫演示http://snapsvg.io/demos/#globe中的d屬性來處理它,但是我認爲它不適用於滾動交互。 – BarryWalsh
有一個更簡單的方法來使用虛線掩碼。 [請參閱此答案的演示](https://stackoverflow.com/questions/45540161/make-the-on-scroll-growing-path-to-dashed-line/45541540#45541540) –