如何保存自动生成的" div id" 。我正在尝试保存用户滚动时在屏幕上可见的div id

时间:2015-04-18 14:45:36

标签: javascript jquery html css

如何保存自动生成的" div id"用户滚动时在屏幕上可见...并跳转回保存的div id ..当用户重新加载页面时。

我可以使用以下代码动态生成id

generateid: function() {
  $("#generate br ~ br").each(function(index, element) {

    $(this).after("<div id=\"bookmark-" + index + "\"></div>");

  });

},

并尝试滚动保存ID,但无法实现..代码如下所示

check: function() {

  $(window).scroll(function() {
    $("div[id^='bookmark-']").each(function(index, element) {
      if ($(this).is(":visible"), $(window)) {

        console.log($(this).attr('id') + " is visible");

      } else {

      }
    });
  });
},

但是静态地能够传递id并滚动到div。使用以下代码

scroll: function() {
  var container = $('div'),
    scrollTo = $('#bookmark-65');

  container.animate({
    scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop()

  });

},

2 个答案:

答案 0 :(得分:0)

如果要保存当前滚动位置,则不必是div。您可以将滚动位置保存为Cookie。

示例:

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1);
    if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
  }
  return "";
}

更多详情here

答案 1 :(得分:0)

尝试明星操作员:$("div[id*='bookmark-']")