Проблема Не могу разобраться с скроллом

Тема в разделе "Внешний вид, шаблоны, графика", создана пользователем Syas, 05.03.2015.

  1. Offline

    Syas Пользователь

    Регистрация:
    15.10.2011
    Сообщения:
    48
    Симпатии:
    2
    Пол:
    Мужской
    Помогите разобраться со скроллом
    Кнопку я подключаю через модуль
    Код (html):
    1. <div class="product-button-form">
    2. <a href="#elem">Туда</a>
    3. <script>
    4. function scro(){
    5.    elem=document.getElementById('elem');
    6.    elem.scrollTop=elem.scrollTop+1;
    7.        if (elem.scrollTop >= (elem.scrollHeight - elem.clientHeight)) {
    8.            elem.scrollTop = 0;
    9.            return;
    10.        }
    11. }
    12. setInterval(scro,70);
    13. </script>
    14. </div>

    позицию модуля в файле вывожу
    Код (PHP):
    1. <?php
    2. $document    = &JFactory::getDocument();
    3. $renderer    = $document->loadRenderer('modules');
    4. $options    = array('style' => 'xhtml');
    5. $position    = 'product-button-form';
    6. echo $renderer->render($position, $options, null);
    7. ?>

    форма выводится с помощью компонента
    RSForm! Pro
    позиция формы выводится
    Код (PHP):
    1. <div class="quickcontact">
    2.  <a id="elem"></a>
    3. <?php
    4. $document    = &JFactory::getDocument();
    5. $renderer    = $document->loadRenderer('modules');
    6. $options    = array('style' => 'xhtml');
    7. $position    = 'zakaz';
    8. echo $renderer->render($position, $options, null);
    9. ?>
    10.  </div>

    но скролл с кнопки до формы отказывается плавно спускаться.
    Что тут не так почему он не хочет работать
     
  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    а пробовал вывести в консоль значение elem ?
     
  4. shure348
    Offline

    shure348 Активист

    Регистрация:
    21.08.2012
    Сообщения:
    145
    Симпатии:
    27
    Пол:
    Мужской
    а нету ли у тебя мил человек нескольких #elem на странице?

    попробуй вариант на jquery

    Код (javascript):
    1. $(function() {
    2. //Плавный переход по якорям
    3. $("a.scrollto").click(function () {
    4. var elementClick = $(this).attr("href")
    5. var destination = $(elementClick).offset().top;
    6. $("html:not:)animated),body:not:)animated)").animate({scrollTop: destination}, 850);
    7. return false;
    8. });
    9. return false;
    10.  
    11. });
    :)
     
  5. Offline

    Syas Пользователь

    Регистрация:
    15.10.2011
    Сообщения:
    48
    Симпатии:
    2
    Пол:
    Мужской
    В модуле прописано
    Код (html):
    1. <div class="product-button-form">
    2. <a href="#elem">Туда</a>
    3. <script>
    4. $(function() {
    5. //Плавный переход по якорям
    6. $("a.scrollto").click(function () {
    7. var elementClick = $(this).attr("href")
    8. var destination = $(elementClick).offset().top;
    9. jQuery("html:not(:animated),body:not(:animated)").animate({scrollTop: destination}, 850);
    10. return false;
    11. });
    12. return false;
    13.  
    14. });
    15. </script>
    16. </div>

    #elem выводится только с модуля есть на форме <a id="elem"></a> но это же для якоря
    и так все ровно не работает
     
  6. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Ты создаешь элемент DOM элемента c id="#elem"
    Код (javascript):
    1. elem=document.getElementById('elem');

    А в коде @shure348 селектор нужно указать для твоего модуля , что то типа
    Код (javascript):
    1. //Плавный переход по якорям
    2. $("a[href^='#elem']").click(function () {
     
  7. Offline

    Syas Пользователь

    Регистрация:
    15.10.2011
    Сообщения:
    48
    Симпатии:
    2
    Пол:
    Мужской
    та же ситуация
    Код (html):
    1. <div class="product-button-form">
    2. <a href="#elem">Туда</a>
    3. <script>
    4. $(function() {
    5. //Плавный переход по якорям
    6. $("a[href^='#elem']").click(function () {
    7. var elementClick = $(this).attr("href")
    8. var destination = $(elementClick).offset().top;
    9. jQuery("html:not(:animated),body:not(:animated)").animate({scrollTop: destination}, 850);
    10. return false;
    11. });
    12. return false;
    13.  
    14. });
    15. </script>
    16. </div>

    страница с длинным списком
    _http://calc-book.lik-material.kz/in...ety/prazdnichnaya-stengazeta-detail.html#elem
     
  8. shure348
    Offline

    shure348 Активист

    Регистрация:
    21.08.2012
    Сообщения:
    145
    Симпатии:
    27
    Пол:
    Мужской
  9. Offline

    Syas Пользователь

    Регистрация:
    15.10.2011
    Сообщения:
    48
    Симпатии:
    2
    Пол:
    Мужской
    Все спасибо последний пост помог
    Код (html):
    1. <div class="product-button-form">
    2. <a href="#elem">Туда</a>
    3. <script>
    4. jQuery(function() {
    5. //Плавный переход по якорям
    6. jQuery("a[href^='#elem']").click(function () {
    7. var elementClick = jQuery(this).attr("href")
    8. var destination = jQuery(elementClick).offset().top;
    9. jQuery("html:not(:animated),body:not(:animated)").animate({scrollTop: destination}, 1500);
    10. return false;
    11. });
    12. return false;
    13.  
    14. });
    15. </script>
    16. </div>

    и отключение mootools

    есть еще один вопрос как сделать форму обратной связи
    я пробовал так
    в файле templates/шаблон/html/com_virtuemart/productdetails/default_showprices.php
    дописал
    Код (PHP):
    1. <a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}"
    2. href="index.php?option=com_virtuemart&view=productdetails&form_emailprice.php">
    3. <?php echo JText::_('COM_VIRTUEMART_PRODUCT_ASKPRICE') ?> </a>

    но при нажатии открывается главная страница
    я хотел в это окно вывести форму с компонента рс форм
    так же пробовал прописать отдельный файл /templates/шаблон/html/com_virtuemart/productdetails/form_emailprice.php
    с содержанием позиции
    Код (PHP):
    1. <?php
    2. defined ('_JEXEC') or die('Restricted access');
    3.  
    4. $document    = &JFactory::getDocument();
    5. $renderer    = $document->loadRenderer('modules');
    6. $options    = array('style' => 'xhtml');
    7. $position    = 'ask-a-question';
    8. echo $renderer->render($position, $options, null);
    9. ?>

    но вот как его подключить не пойму если делали что то подобное подскажите как это можно реализовать
     
  10. shure348
    Offline

    shure348 Активист

    Регистрация:
    21.08.2012
    Сообщения:
    145
    Симпатии:
    27
    Пол:
    Мужской
    Держи левую форму (она в модалке, но можно и так сделать)
    там текстовый файл - в нем и цсс и жс и верстка
    в php соответственон отправка письма ( домен обратного адреса письма обычно должен совпадать с доменом сайта)
    вообщем несложно

    ЗЫ хде плюс в карму за mootools?:eek:
     

    Вложения:

    • modal.zip
      Размер файла:
      3.5 КБ
      Просмотров:
      1
    Syas нравится это.
  11. Offline

    Syas Пользователь

    Регистрация:
    15.10.2011
    Сообщения:
    48
    Симпатии:
    2
    Пол:
    Мужской
    так вот в чем то и проблема как добавить ее
    Код (html):
    1. <a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}"
    2. href="index.php?option=com_virtuemart&view=productdetails&form_emailprice.php">
    3. <?php echo JText::_('COM_VIRTUEMART_PRODUCT_ASKPRICE') ?> </a>

    --- добавлено: 06.03.2015, первое сообщение размещено: 05.03.2015 ---
    пробовал так
    <a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}"
    href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/html/com_virtuemart/productdetails/form_emailprice.php">
    <?php echo JText::_('COM_VIRTUEMART_PRODUCT_ASKPRICE') ?> </a>
    и с текстовым файлом во вложении не разобрался как его раскидывать по файлом то есть стили к стилям js к js и форму с обработчиком вставлять в form_emailprice.php и туда же подключать js и стили или как.
    Но тут же опять не понятно как подключить ссылку до файла с формой и обработчиком.
    Такого плана ссылка
    <?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/html/com_virtuemart/productdetails/form_emailprice.php
    вызывает 404-ю
    --- добавлено: 06.03.2015 ---
    решил не не замарачиваться и стандартную форму переделать но тут опять проблема при нажатии на кнопку открывается 2 формы как это решить
    в файле /templates/шаблон/html/com_virtuemart/productdetails/default_showprices.php прописал
    Код (PHP):
    1. <a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $this->askquestion_url ?>"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ASKPRICE') ?></a>

    сама форма с кодом
    Код (CODE):
    1. <?php
    2. /**
    3.  *TODO Improve the CSS , ADD CATCHA ?
    4.  * Show the form Ask a Question
    5.  *
    6.  * @package    VirtueMart
    7.  * @subpackage
    8.  * @author Kohl Patrick, Maik K�nnemann
    9.  * @link http://www.virtuemart.net
    10.  * @copyright Copyright (c) 2004 - 2014 VirtueMart Team. All rights reserved.
    11.  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
    12.  * VirtueMart is free software. This version may have been modified pursuant
    13.  * to the GNU General Public License, and as distributed it includes or
    14.  * is derivative of works licensed under the GNU General Public License or
    15.  * other free or open source software licenses.
    16. * @version $Id: default.php 2810 2011-03-02 19:08:24Z Milbo $
    17.  */
    18.  
    19. // Check to ensure this file is included in Joomla!
    20. defined ( '_JEXEC' ) or die ( 'Restricted access' );
    21. $min = VmConfig::get('asks_minimum_comment_length', 50);
    22. $max = VmConfig::get('asks_maximum_comment_length', 2000) ;
    23. vmJsApi::JvalideForm();
    24. $document = JFactory::getDocument();
    25. $document->addScriptDeclaration('
    26.     jQuery(function($){
    27.             $("#askform").validationEngine("attach");
    28.             $("#comment").keyup( function () {
    29.                 var result = $(this).val();
    30.                     $("#counter").val( result.length );
    31.             });
    32.     });
    33. ');
    34. /* Let's see if we found the product */
    35. if (empty ( $this->product )) {
    36.     echo JText::_ ( 'COM_VIRTUEMART_PRODUCT_NOT_FOUND' );
    37.     echo '<br /><br />  ' . $this->continue_link_html;
    38. } else {
    39.     $session = JFactory::getSession();
    40.     $askQuestionData = $session->get('askquestion', 0, 'vm');
    41.     if(!empty($this->login)){
    42.         echo $this->login;
    43.     }
    44.     if(empty($this->login) or VmConfig::get('recommend_unauth',false)){
    45.         ?>
    46.         <div class="ask-a-question-view">
    47.             <h1><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ASK_QUESTION')  ?></h1>
    48.  
    49.             <div class="product-summary">
    50.                 <div class="width70 floatleft">
    51.                     <h2><?php echo $this->product->product_name ?></h2>
    52.  
    53.                     <?php // Product Short Description
    54.                     if (!empty($this->product->product_s_desc)) { ?>
    55.                         <div class="short-description">
    56.                             <?php echo $this->product->product_s_desc ?>
    57.                         </div>
    58.                     <?php } // Product Short Description END ?>
    59.  
    60.                 </div>
    61.  
    62.                 <div class="width30 floatleft center">
    63.                     <?php // Product Image
    64.                     echo $this->product->images[0]->displayMediaThumb('class="product-image"',false); ?>
    65.                 </div>
    66.  
    67.                 <div class="clear"></div>
    68.             </div>
    69.  
    70.             <div class="form-field">
    71.  
    72.                 <form method="post" class="form-validate" action="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$this->product->virtuemart_product_id.'&virtuemart_category_id='.$this->product->virtuemart_category_id.'&tmpl=component', FALSE) ; ?>" name="askform" id="askform">
    73.  
    74.                     <table class="askform">
    75.                         <tr>
    76.                             <td><label><?php echo JText::_('COM_VIRTUEMART_USER_FORM_NAME')  ?> : </label></td>
    77.                             <td><input type="text" class="validate[required,minSize[3],maxSize[64]]" value="<?php echo $this->user->name ? $this->user->name : $askQuestionData['name'] ?>" name="name" id="name" size="30"  validation="required name"/></td>
    78.                         </tr>
    79.                         <tr>
    80.                             <td><label><?php echo JText::_('COM_VIRTUEMART_USER_FORM_EMAIL')  ?> : </label></td>
    81.                             <td><input type="text" class="validate[required,custom]" value="<?php echo $this->user->email ? $this->user->email : $askQuestionData['email'] ?>" name="email" id="email" size="30"  validation="required email"/></td>
    82.                         </tr>
    83.                         <tr>
    84.                             <td colspan="2"><label><?php echo JText::sprintf('COM_VIRTUEMART_ASK_COMMENT', $min, $max); ?></label><td>
    85.                         </tr>
    86.                         <tr>
    87.                             <td colspan="2"><textarea title="<?php echo $ask_comment ?>" class="validate[required,minSize[<?php echo $min ?>],maxSize[<?php echo $max ?>]] field" id="comment" name="comment" rows="8"><?php echo $askQuestionData['comment'] ?></textarea></td>
    88.                         </tr>
    89.                     </table>
    90.  
    91.                     <div class="submit">
    92.                         <div class="width50 floatright right paddingtop">
    93.                             <?php echo JText::_('COM_VIRTUEMART_ASK_COUNT')  ?>
    94.                             <input type="text" value="0" size="4" class="counter" id="counter" name="counter" maxlength="4" readonly="readonly" />
    95.                         </div>
    96.                         <?php // captcha addition
    97.                         if(VmConfig::get ('ask_captcha')){
    98.                             JHTML::_('behavior.framework');
    99.                             JPluginHelper::importPlugin('captcha');
    100.                             $dispatcher = JDispatcher::getInstance(); $dispatcher->trigger('onInit','dynamic_recaptcha_1');
    101.                             ?>
    102.                             <div id="dynamic_recaptcha_1"></div>
    103.                         <?php
    104.                         }
    105.                         // end of captcha addition
    106.                         ?>
    107.                         <input class="highlight-button" type="submit" name="submit_ask" title="<?php echo JText::_('COM_VIRTUEMART_ASK_SUBMIT')  ?>" value="<?php echo JText::_('COM_VIRTUEMART_ASK_SUBMIT')  ?>" />
    108.                     </div>
    109.  
    110.                     <input type="hidden" name="virtuemart_product_id" value="<?php echo JRequest::getInt('virtuemart_product_id',0); ?>" />
    111.                     <input type="hidden" name="tmpl" value="component" />
    112.                     <input type="hidden" name="view" value="productdetails" />
    113.                     <input type="hidden" name="option" value="com_virtuemart" />
    114.                     <input type="hidden" name="virtuemart_category_id" value="<?php echo JRequest::getInt('virtuemart_category_id'); ?>" />
    115.                     <input type="hidden" name="task" value="mailAskquestion" />
    116.                     <?php echo JHTML::_( 'form.token' ); ?>
    117.                 </form>
    118.  
    119.             </div>
    120.         </div>
    121. <?php
    122.     }
    123. } ?>
     

Поделиться этой страницей

Загрузка...