【问题标题】:scrollTop and getSelection()scrollTop 和 getSelection()
【发布时间】:2023-03-27 17:26:01
【问题描述】:

好的,所以我有两个代码,两者都有问题。他们齐头并进,所以请不要说做两个单独的帖子。在第二个代码完成后,我需要 scrollTop 工作。谢谢你


这部分已经完成了~!

$('html,body').animate({
   scrollTop: '+=' + $('a[name="quickreply"]').offset().top + 'px'
 }, '3000');

改成

$('html,body').animate({
   scrollTop: $('a[name="quickreply"]').offset().top;
 }, '3000');

接下来我在 stackoverflow 上找到了这段代码,从 tim 开始,我相信?

更新小提琴:http://jsfiddle.net/dKaJ3/340/

我需要它只能在我选择的某个 div 中进行选择,并且只能选择文本而不是 HTML,因为我的网站只接受 BBcode。

这是我使用的完整代码,但我只需要用户选择的内容。

$('.post').each(function() {
  var text = $('#text_editor_textarea');
  var uid = $(this).find('.username a').text();
  var usermess = $(this).find('.entry-content div div').text();
    $(this).find('.quote').click(function() {
    text.val(text.val()+'[quote="'+ uid +'"]'+ usermess +'[/quote]');
 $('html,body').animate({
    scrollTop: '+=' + $('a[name="quickreply"]').offset().top + 'px'
  }, '3000');
 });
});

任何帮助都会很好,因为我已经在 .getSelection 上工作了几个小时,这是我第一次使用它。谢谢。

【问题讨论】:

  • 真的需要一些帮助,我正在努力大声笑。这两个代码齐头并进,谢谢。

标签: javascript jquery scrolltop getselection


【解决方案1】:

我认为它不应该说 += 室内动画通话而只是 =。这是因为偏移量不是相对于文档的可见顶部计算的,而是相对于文档的绝对顶部。

【讨论】:

  • 嘿,这听起来合乎逻辑,谢谢,我会试试看。你能帮助 .getSelection 部分吗?我想选择.entry-content 而不是整个窗口...对此有什么建议吗?---页面现在通过删除 + 滚动到顶部而不是元素
  • 我现在离它更近了,我已经删除了“+=”和“px”部分,所以现在在 scrollTop 之后剩下的就是$('a[name="quickreply"]').offset().top,这是我得到的最接近的。只是还不完美
【解决方案2】:

首先,如果您将问题拆分为各个组成部分,您的问题会得到更多关注。

无论如何,第1部分:在用户的选择中,格式是否需要转换为bbcode?那可能会变得复杂。或者纯文本可以吗?您可以为此使用正则表达式来删除 html 标记。

第 2 部分:这里有几个关于如何防止/允许选择文本的问题:

第 3 部分:滚动。我看不出你发布的代码有什么问题。您的 JSFiddle 似乎没有涵盖这个问题。你有没有机会把你所拥有的东西提取出来?我认为这是您代码的另一部分问题。

【讨论】:

  • 纯文本没问题。我不想要任何图像,这是一个问题,因为我不想使用上面的一个核心代码,我想使用 .getSelection,然后单击引用按钮,它会引用并跳转到文本区域。所以,是的,他们在这方面携手并进。小提琴是 Tim Downs,我刚开始编辑它很少。我不想阻止选择,我想使用 getSelection 作为我的引号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
相关资源
最近更新 更多