css 如何在刷新时保存滑块值位置(会话存储)

plupiseo  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(120)

这是我当前代码的简单版本

<script src="main.js"></script>
<script type="text/javascript">
wwr_start();
function onSliderChanged(slider) {
wwr_req(`SET/TRACK/${slider.id}/VOL/${slider.value}`);

}
<label class="drx"> Stax </label>
        <input type=range min=0 max=3 value=1 step=any id="3" 
oninput="onSliderChanged(this)"

所以我有大约40个幻灯片(范围输入),看起来像上面的代码。但每当我刷新页面,滑块值回到默认值。我如何保存滑块值的最新位置,即使页面被刷新?我试图使用“sessionstorage”,但由于我是相当新的编码世界,我不能真正弄清楚如何使用该功能。
我试着复制和粘贴其他人如何使用sessionstorage,但无法适应我当前的代码

sulc1iza

sulc1iza1#

下面是一个简单的示例,说明如何:

  • 在窗口加载时(即浏览器已经加载了您的页面并准备就绪),它会向滑块附加一个事件,并从会话存储中检索滑块位置(如果存在)。
  • 如果更改了该值,它将更新sessionStorage变量。

您需要将其复制到您自己的项目中,因为由于交叉安全性,这个示例可能无法在这里工作。

window.onload = () => {
    const slider1 = document.getElementById('slider1');

    // Attach listener to each slider
    slider1.addEventListener('input',storeSliderPosition);

    //retrieve value from sessionStorage
    if(sessionStorage.slider1) {    //first check if a value exists
      slider1.value = sessionStorage.slider1; //if so then set the value of the slider
      console.log("The stored slider value is: "+sessionStorage.slider1);
    }
  }

  function storeSliderPosition(event) {
    const id = event.target.id;   //get the id of the slider we're using
    sessionStorage[id] =  event.target.value;  //set the session storage value of the slider. Note sessionStorage['slider1'] is the same as sessionStorage.slider1
    console.log(`The slider ${id} has changed and the new value is: ${sessionStorage[id]}`);
  }
<input type="range" min="1" max="100" value="50" id="slider1">

相关问题